/**
 * 路由辅助函数
 */

/**
 * 处理页面刷新/直接访问时的路由跳转
 * @returns {Object|null} 路由对象，包含path属性
 */
export const handleInitialRoute = () => {
  // 首先检查服务器注入的初始路径
  const serverPath = window.__INITIAL_PATH__;
  if (serverPath && serverPath !== '/' && !serverPath.includes('/assets/')) {
    return {path: serverPath};
  }
  
  // 然后检查会话存储中的路径
  const redirectPath = sessionStorage.getItem('spa_redirect_path');
  if (redirectPath) {
    sessionStorage.removeItem('spa_redirect_path');
    return {path: redirectPath};
  }
  
  return null;
};

/**
 * 安全的页面跳转函数 - 最简化版本
 * 使用直接修改window.location.hash的方式，完全绕过Vue Router
 * @param {string} path 跳转路径
 */
export const safeNavigate = (path) => {
  if (!path) {
    // console.warn('无效的路径，跳转取消');
    return;
  }
  
  try {
    // 格式化路径，确保以#/开头
    const hashPath = path.startsWith('#') ? path : `#${path.startsWith('/') ? path : '/' + path}`;
    
    // 直接修改浏览器地址栏的hash值，完全绕过Vue Router
    window.location.hash = hashPath;
  } catch (error) {
    // console.error('导航错误:', error);
    // 如果出错，可以尝试刷新页面
    window.location.reload();
  }
}; 